Consulta de Guías Docentes



Academic Year/course: 2023/24

30213 - Data Structures and Algorithms


Syllabus Information

Academic year:
2023/24
Subject:
30213 - Data Structures and Algorithms
Faculty / School:
110 - Escuela de Ingeniería y Arquitectura
326 - Escuela Universitaria Politécnica de Teruel
Degree:
439 - Bachelor's Degree in Informatics Engineering
443 - Bachelor's Degree in Informatics Engineering
ECTS:
6.0
Year:
2
Semester:
First semester
Subject type:
Compulsory
Module:
---

1. General information

 

In this subject the student will improve his ability to design and develop computer programs with emphasis on the identification, design and definition of Abstract Data Types (ADTs) regardless of their implementation. The student will learn how to design and implement TADs to be reusable, efficient and robust, and to implement them guaranteeing these properties. Some of the most frequently used fundamental TADs will be presented, for which different implementation alternatives will be studied and compared.

These approaches and goals are aligned with the following Sustainable Development Goals (SDGs) of the United Nations Agenda 2030 (https://www.un.org/sustainabledevelopment/es/), so that the acquisition of the learning results of the subject provides training and competence to contribute in some measure to the achievement of Targets 8.4 and 16.5

To take this subject it is necessary to have previous training in programming, at the corresponding level

to the one required to pass the subject Programming II. It is also very convenient to have a mathematical background at the level of Discrete Mathematics.

 

2. Learning results

 

R6. Define abstract data types (TAD's) independently of their implementation.

R7. Implement TAD's in a modular programming language.

R8. Implement and use some fundamental TADs, such as stacks, queues, lists, search trees, hash tables and graphs.

R9. Compare different TAD implementation alternatives with respect to algorithm execution time and memory usage.

R10. Tackle the modular design of medium-sized programs by identifying, defining and implementing the necessary TADs.

R11. Apply basic algorithmic schemes (such as divide to win, search with backtracking, voracity...) to problem solving.



3. Syllabus

 

1. Programming with Abstract Data Types.

2. Linear data types.

3. Arborescent data types.

4. Functional data types.

5. Introduction to networks.

6. Introduction to algorithmic schemes.

 

4. Academic activities

 

Lectures: the syllabus will be explained, 30 hours (all hours indicated are approximate)

Problem classes: sessions to solve exercises and design and implementation cases, 15 hours

Personal study of the subject, preparation of classes and practical activities: continuous study and work from the first day of class, 60 hours first day of class, 60 hours

Laboratory practices: 15 hours in the laboratory, in addition to the teamwork required to complete them

Team work: to solve the tasks proposed in the practices and whose result is the delivery of the resulting programs conveniently designed, implemented and documented (25 hours each student).

Evaluation tests: 5 hours




5. Assessment system

 

The subject will be evaluated in the global assessment modality divided in who parts in each call:

- P1, written exam, a minimum grade of 5.0 will be required to pass and mediate with the rest of the parts. The should solve programming and design problems, and answer conceptual questions if necessary. It will be graded with a score from 0 to 10, for which in general the following will be valued: the quality and clarity of the answers and solutions proposed, their adequacy to the specifications and restrictions, the quality of the design, the adequate application of the resolution methods, and the time spent.

- P2, practical part, a minimum grade of 5.5 will be required to pass and mediate with the rest of the parts. There will be two alternative to obtain the grade for this part, referred to here as P2A or P2B.

  • P2A: Carrying out team practices during the four-month period of the subject.

Teams will be formed, according to the limits in size and configuration indicated by the professors, which will have to hand in their results for all the programming problems indicated in the practice scripts of the course, complying with the deadlines and indications given for each one of them. 

For each student, the final grade obtained with his practical team work P2A, will be used as his grade for the practical part P2, unless he takes an individual test P2B as described below. 

  • P2B: Individual laboratory practical exam, at each session.

In the practical exam, the student will be presented with programming exercises of a similar nature to those performed in the practicals or those seen in class.

For those students who take the individual exam P2B, their grade obtained in that exam will be used as their grade for the practical part of the subject, P2.



In general, each of the practical deliveries as well as the individual practical exam will be graded with a grade from 0 to 10, for which the following will be evaluated: the correct operation and performance of the programs according to specifications, the quality of their design, the adequate application of the resolution methods, the authorship and originality, and the time spent, as well as the ability of the team members to explain and justify the design.

In order to pass the subject it will be necessary to obtain the minimum grades required, both in P1 and P2, and in such case, for the calculation of the final grade in the subject, P1 will be weighted at 70%, and P2 at 30%. 

If the final grades obtained by the student in parts P1 and P2 are both greater than or equal to the minimum grades required in the respective parts, then the student's final grade will be obtained as the weighted sum of their P1 and P2 grades. Otherwise, the student's grade will be equal to the minimum between: a 4.0 or the weighted sum of their P1 and P2 grades.

 


Curso Académico: 2023/24

30213 - Estructuras de datos y algoritmos


Información del Plan Docente

Año académico:
2023/24
Asignatura:
30213 - Estructuras de datos y algoritmos
Centro académico:
110 - Escuela de Ingeniería y Arquitectura
326 - Escuela Universitaria Politécnica de Teruel
Titulación:
439 - Graduado en Ingeniería Informática
443 - Graduado en Ingeniería Informática
Créditos:
6.0
Curso:
2
Periodo de impartición:
Primer semestre
Clase de asignatura:
Obligatoria
Materia:
---

1. Información básica de la asignatura

En esta asignatura el estudiante mejorará su capacidad para diseñar y desarrollar programas de ordenador haciendo énfasis en la identificación, diseño y definición de Tipos Abstractos de Datos (TADs) independientemente de su implementación. El estudiante aprenderá a diseñar e implementar TADs para que sean reutilizables, eficientes y robustos, y a implementarlos garantizando dichas propiedades. Se presentarán algunos de los TADs fundamentales de uso más frecuente, para los que se estudiarán y compararán distintas alternativas de implementación.

Estos planteamientos y objetivos están alineados con los Objetivos de Desarrollo Sostenible (ODS) de la Agenda 2030 de Naciones Unidas (https://www.un.org/sustainabledevelopment/es/), de tal manera que la adquisición de los resultados de aprendizaje de la asignatura proporcionan capacitación y competencia para contribuir, en cierta medida, al logro de las metas 8.4 y 16.5.

Para cursar esta asignatura es necesario contar con una formación previa en programación, del nivel correspondiente al necesario para superar la asignatura Programación II. También resulta muy conveniente contar con formación matemática del nivel de la asignatura Matemática Discreta.

2. Resultados de aprendizaje

R6. Definir tipos abstractos de datos (TAD's) independientemente de su implementación.
R7. Implementar TAD's en un lenguaje de programación modular.
R8. Implementar y utilizar algunos TAD's fundamentales, como pilas, colas, listas, árboles de búsqueda,
tablas hash y grafos.
R9. Comparar distintas alternativas de implementación de TAD's con respecto al tiempo de ejecución
de algoritmos y al uso de la memoria.
R10. Afrontar el diseño modular de programas de tamaño medio identificando, definiendo e implementando
los TAD's necesarios.
R11. Aplicar los esquemas algorítmicos básicos (como dividir para vencer, búsqueda con retroceso,
voracidad...) a la resolución de problemas.

3. Programa de la asignatura

  1. Programación con Tipos Abstractos de Datos.
  2. Tipos de datos lineales.
  3. Tipos de datos arborescentes.
  4. Tipos de datos funcionales.
  5. Introducción a los grafos.
  6. Introducción a los esquemas algorítmicos.

4. Actividades académicas

Clases magistrales: se explicará el temario de la asignatura, 30 horas (todas las horas indicadas son aproximadas)
Clases de problemas: sesiones de resolución de ejercicios y casos de diseño e implementación, 15 horas
Estudio personal de la materia, preparación de las clases y actividades prácticas: estudio y trabajo continuado desde el primer día de clase, 60 horas
Prácticas de laboratorio: 15 horas en laboratorio, además del trabajo en equipo necesario para terminarlas
Trabajo en equipo: para resolver las tareas propuestas en las prácticas y cuyo resultado se plasma en la entrega de los programas resultantes convenientemente diseñados, implementados y documentados (25 horas cada estudiante)
Pruebas de evaluación: 5 horas

5. Sistema de evaluación

La asignatura se evaluará en la modalidad de evaluación global, dividida en dos partes en cada convocatoria:

• P1, examen escrito, se exigirá una nota mínima de un 5,0 para aprobar y mediar con el resto de las partes. Se deberán resolver problemas de programación y diseño, y en su caso responder preguntas conceptuales. Se calificará con una nota de 0 a 10, para la que en general se valorará: la calidad y claridad de las respuestas y soluciones propuestas, su adecuación a las especificaciones y restricciones planteadas, la calidad del diseño, la adecuada aplicación de los métodos de resolución, y el tiempo empleado.

• P2, parte práctica, se exigirá una nota mínima de un 5,5 para aprobar y mediar con el resto de las partes. Habrá dos alternativas para obtener la nota de esta parte, denominadas aquí P2A o P2B.

  • P2A: Realización de prácticas en equipo, durante el cuatrimestre de impartición de la asignatura.
    Se formarán equipos, de acuerdo a los límites en tamaño y configuración que indiquen los profesores, que deberán entregar sus resultados para todos los problemas de programación indicados en los guiones de prácticas de la asignatura, cumpliendo con los plazos e indicaciones dados para cada una de ellas. 
    Para cada estudiante, la calificación final obtenida con sus trabajos prácticos en equipo P2A, se utilizará como su nota para la parte práctica P2, salvo que se presente a una prueba individual P2B que se describe a continuación. 
  • P2B: Examen individual de prácticas en laboratorio, en cada convocatoria.
    En el examen práctico se le plantearán al estudiante ejercicios de programación de naturaleza similar a los realizados en las prácticas o a los vistos en clase.
    Para aquellos estudiantes que se presenten al examen individual P2B, se utilizará su nota obtenida en dicho examen como su nota para la parte práctica de la asignatura, P2.


En general, tanto cada una de las entregas de prácticas como el examen práctico individual, se calificarán con una nota de 0 a 10, para la que se valorará: el correcto funcionamiento y rendimiento de los programas según especificaciones, la calidad de su diseño, la adecuada aplicación de los métodos de resolución, la autoría y originalidad, y el tiempo empleado, así como la capacidad de los integrantes del equipo para explicar y justificar el diseño realizado.

Para aprobar la asignatura será necesario obtener las calificaciones mínimas exigidas, tanto en la parte P1 como en P2, y en tal caso para el cálculo de la calificación final en la asignatura la parte P1 se ponderará al 70%, y la parte P2 un 30%.
Si las calificaciones finales obtenidas por el estudiante en las partes P1 y P2 son ambas mayores o iguales a las notas mínimas exigidas en las respectivas partes, entonces la calificación final del estudiante se obtendrá como la suma ponderada de sus calificaciones P1 y P2. En caso contrario, la calificación del estudiante será igual al mínimo entre: un 4,0 o la suma ponderada de sus calificaciones P1 y P2.